草庐IT

C++ ifstream 到 char *

全部标签

c++ - 内存分配 char* 和 char[]

这两者在内存分配方面有什么区别。char*p1="hello";charp2[]="hello"; 最佳答案 第一个创建一个pointer变量(取决于平台,4或8个字节的存储空间)并在那里存储字符串文字的location,第二个创建array六个字符(包括零字符串终止字节)并在那里复制文字。你应该在第一行得到一个编译器警告,因为字面量是const。 关于c++-内存分配char*和char[],我们在StackOverflow上找到一个类似的问题: https

c++ - 内存分配 char* 和 char[]

这两者在内存分配方面有什么区别。char*p1="hello";charp2[]="hello"; 最佳答案 第一个创建一个pointer变量(取决于平台,4或8个字节的存储空间)并在那里存储字符串文字的location,第二个创建array六个字符(包括零字符串终止字节)并在那里复制文字。你应该在第一行得到一个编译器警告,因为字面量是const。 关于c++-内存分配char*和char[],我们在StackOverflow上找到一个类似的问题: https

c++ - 为什么在 C++ 中默认签名为 'char'?

为什么char在默认情况下应该在-128到127的范围内表示一个“字符”,其文本表示在0到255的范围内?从这个意义上说,我猜char默认情况下应该是无符号的,只有当我们打算只将它视为“数字”时,我们才必须添加“有符号”关键字。因此,我在处理文本文件时应该使用unsignedchar吗?我也不明白为什么std::ofstream的读写函数使用char而不是unsignedchar当我需要处理二进制文件时。我不在乎签名,对吗?此外,我使用signedchar成功制作了JPEG文件的拷贝。像这样://..openallstreams..charc;while(input.peek()!=E

c++ - 为什么在 C++ 中默认签名为 'char'?

为什么char在默认情况下应该在-128到127的范围内表示一个“字符”,其文本表示在0到255的范围内?从这个意义上说,我猜char默认情况下应该是无符号的,只有当我们打算只将它视为“数字”时,我们才必须添加“有符号”关键字。因此,我在处理文本文件时应该使用unsignedchar吗?我也不明白为什么std::ofstream的读写函数使用char而不是unsignedchar当我需要处理二进制文件时。我不在乎签名,对吗?此外,我使用signedchar成功制作了JPEG文件的拷贝。像这样://..openallstreams..charc;while(input.peek()!=E

c++ - char数组上的一元加运算符的目的是什么?

以下是做什么的?我认为+仅用于整数提升。charc[20]="hello";foo(+c);foo(+"hello"); 最佳答案 它强制数组衰减为指针,如§5.3.1[expr.unary.op]/7中间接说明的:Theoperandoftheunary+operatorshallhavearithmetic,unscopedenumeration,orpointertypeandtheresultisthevalueoftheargument.Integralpromotionisperformedonintegralorenu

c++ - char数组上的一元加运算符的目的是什么?

以下是做什么的?我认为+仅用于整数提升。charc[20]="hello";foo(+c);foo(+"hello"); 最佳答案 它强制数组衰减为指针,如§5.3.1[expr.unary.op]/7中间接说明的:Theoperandoftheunary+operatorshallhavearithmetic,unscopedenumeration,orpointertypeandtheresultisthevalueoftheargument.Integralpromotionisperformedonintegralorenu

c++ - ifstream : how to tell if specified file doesn't exist

我想打开一个文件进行阅读。但是,在这个程序的上下文中,如果文件不存在也没关系,我继续前进。我希望能够识别错误何时是“找不到文件”以及何时错误。否则意味着我需要退出并出错。我没有看到使用fstream的明显方法。我可以用C的open()和perror()来做到这一点。我推测也有一种fstream方法可以做到这一点。 最佳答案 编辑:我已被告知这并不一定表示文件不存在,因为它也可能由于访问权限或其他问题而被标记。我知道我回答这个问题已经很晚了,但我想我还是会为浏览的任何人留下评论。您可以使用ifstream的失败指示器来判断文件是否存在

c++ - ifstream : how to tell if specified file doesn't exist

我想打开一个文件进行阅读。但是,在这个程序的上下文中,如果文件不存在也没关系,我继续前进。我希望能够识别错误何时是“找不到文件”以及何时错误。否则意味着我需要退出并出错。我没有看到使用fstream的明显方法。我可以用C的open()和perror()来做到这一点。我推测也有一种fstream方法可以做到这一点。 最佳答案 编辑:我已被告知这并不一定表示文件不存在,因为它也可能由于访问权限或其他问题而被标记。我知道我回答这个问题已经很晚了,但我想我还是会为浏览的任何人留下评论。您可以使用ifstream的失败指示器来判断文件是否存在

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::